 LST OFF
 ORG $E00
*************************
*
*  16 OPONENT VERSION
*
**************************
*
MN0Y DFB $8,$41,$78
MN1Y DFB $8,$41,$78  
MN2Y DFB $8,$41,$78  
MN3Y DFB $8,$41,$78  
MN4Y DFB $18,$51,$89
MN5Y DFB $18,$51,$89 
MN6Y DFB $18,$51,$89 
MN7Y DFB $18,$51,$89 
MN8Y DFB $28,$61,$99 
MN9Y DFB $28,$62,$99
MNAY DFB $28,$61,$99
MNBY DFB $28,$62,$99 
MNCY DFB $28,$61,$99 
MNDY DFB $28,$62,$99
MNEY DFB $28,$61,$99
MNFY DFB $28,$62,$99 
*   
LEVOP DFB 0,1,2,0,0,1,2,2,0,0,1,1,2,2,2,1
INDINIT DFB 4,4,4,4,3,3,3,3,2,2,2,2,2,2,2,2
OPWIDTH DFB 6,6,6,6,2,2,2,2,3,3,3,3,3,3,3,3
MNSTREINF DFB 2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2 
INDN DFB 0,1,2,3,0,1,2,3,0,1,2,3,0,1,2,3
*
OPFLG0 DFB 4
OPFLG1 DFB 1
OPFLG2 DFB 2
OPFLG3 DFB 4
OPFLG4 DFB 8
OPFLG5 DFB 16
OPFLG6 DFB 32
OPFLG7 DFB 64
OPFLG8 DFB 128
OPFLG9 DFB 1
OPFLGA DFB 2
OPFLGB DFB 4
OPFLGC DFB 8
OPFLGD DFB 16
OPFLGE DFB 32
OPFLGF DFB 64
*
OPMODE0 DFB 128
OPMODE1 DFB 128
OPMODE2 DFB 192
OPMODE3 DFB 128
OPMODE4 DFB 192
OPMODE5 DFB 128
OPMODE6 DFB 192
OPMODE7 DFB 128
OPMODE8 DFB 192
OPMODE9 DFB 128
OPMODEA DFB 192
OPMODEB DFB 128
OPMODEC DFB 192
OPMODED DFB 128
OPMODEE DFB 192
OPMODEF DFB 128
*
MNYTAB DFB 0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45
SNSEQTAB DFB $20,$28,$30,$38,$40,$48,$50,$58 
 DFB $60,$68,$70,$78,$80,$88,$90,$98 
*
CHOLD DFB $30,$31,$32,$33,$77,$78,$79,$7A 
 DFB $70,$76,$71,$75,$72,$74,$72,$74 
CHNEW DFB $30,$31,$32,$33,$77,$78,$79,$7A 
 DFB $70,$76,$71,$75,$72,$74,$72,$74 
XOLD DFB 34,20,30,40,50,60,70,80 
 DFB 34,20,30,40,50,60,70,80
XNEW DFB 34,20,30,40,60,80,90,110                                 
 DFB 110,130,150,170,190,210,230,250 
YOLD DFB $8,$41,$78,$08,$18,$51,$89,$89 
 DFB $28,$28,$61,$61,$99,$99,$99,$61 
YNEW DFB $8,$41,$78,$08,$18,$51,$89,$89        
 DFB $28,$28,$61,$61,$99,$99,$99,$61 
*
MSEQ0 DFB $30,$31,$32,$31,$33,$31,$32,$34 
MSEQ1 DFB $30,$31,$32,$31,$33,$31,$32,$34 
MSEQ2 DFB $30,$31,$32,$31,$33,$31,$32,$34 
MSEQ3 DFB $30,$31,$32,$31,$33,$31,$32,$34 
MSEQ4 DFB $77,$78,$79,$7A,$77,$78,$79,$7A 
MSEQ5 DFB $77,$78,$79,$7A,$77,$78,$79,$7A 
MSEQ6 DFB $77,$78,$79,$7A,$77,$78,$79,$7A 
MSEQ7 DFB $77,$78,$79,$7A,$77,$78,$79,$7A 
MSEQ8 DFB $70,$71,$72,$70,$71,$72,$00,$00 
MSEQ9 DFB $70,$71,$72,$70,$71,$72,$00,$00 
MSEQA DFB $70,$71,$72,$70,$71,$72,$00,$00 
MSEQB DFB $76,$75,$74,$76,$75,$74,$00,$00 
MSEQC DFB $76,$75,$74,$76,$75,$74,$00,$00 
MSEQD DFB $76,$75,$74,$76,$75,$74,$00,$00 
MSEQE DFB $60,$61,$62,$60,$61,$62,$00,$00 
MSEQF DFB $60,$61,$62,$60,$61,$62,$00,$00 
*
FLGLO DFB $80,$81,$82,$83,$84,$85,$86,$87,$88,$89,$8A,$8B,$8C,$8D,$8E,$8F
MNMODE DFB $90,$91,$92,$93,$94,$95,$96,$97,$98,$99,$9A,$9B,$9C,$9D,$9E,$9F
*
MNSTRES DFB 4,4,4,4
*
HHFLG DFB $00
ALREADYFLG DFB 0,0
CAPTUREFLG DFB 0
SAFLG DFB 15
DELFIX DFB $18
BANN DFB 150
MANN DFB 110 
SANN DFB 90
*
 LST ON
****************************
*
* PARAMETER BUILDER
*
****************************
FLOOR EQU $8DD
ARRAY EQU $10
OPNUM EQU $8DE
OPINDX EQU $8DF
XTEMP EQU $8C3
EXMASK EQU $95E8
FLAG EQU $8C8
DIFF EQU $9EE
TN EQU $31D
SN EQU $31E
BUFLO EQU $328
BUFHI EQU $329
WRITE EQU $352
READ EQU $33D
* MOVE ORG. WHEN IT IS
* WORKING. THE FINAL ASSEMBLY
* SHOULD BE TO THE TEXT PAGE
*
*
 ORG $6C00             
*
* APTAB FLOOR VS. OPNUM
*
APTAB DS 128 
MODETAB DS 104
DIFTAB DFB 11,9,8,7,5,3,2,1
*
*
 ORG $6D00            
*
OPSEQTAB DS 234
BLDTAB DFB $00,$0D,$1A,$27,$34,$41,$4E,$5B,$68,$75,$82,$8F,$9C,$A9,$B6,$C3,$D0,$DD,0,0,0,0 
*
*
 ORG $6600
*
*
RND JMP RNDM
PARBLD JMP START
*
*
START LDA #$17 
 STA TN
 LDA #0
 STA SN
 STA BUFLO
 LDA #$E
 STA BUFHI
 JSR READ
 INC SN
 INC BUFHI
 JSR READ ;SETS INIT OP PARM
 LDA #0      
 STA FLOOR
LOOPA LDA FLOOR
 ASL A
 ASL A
 ASL A
 ASL A
 STA OPGET+1
 LDA #0
 STA OPINDX
LOOPB LDX OPINDX 
OPGET LDA APTAB,X 
 STA OPNUM
 JSR FIXIT
 JSR FILLIN
 INC OPINDX
 LDA OPINDX
 CMP #$10
 BNE LOOPB
 LDA #0
 STA HHFLG
 JSR SPECFLR
 JSR FLSAVE
 INC FLOOR
 LDA FLOOR
 CMP #8
 BNE LOOPA
 RTS
*
*
*
FIXIT LDY #2
 LDX OPNUM
 LDA BLDTAB,X
 STA LOADER+1
 STA LOADER1+1
 STA LOADER2+1
 STA LOADER3+1
 LDX OPINDX
 LDA MNYTAB,X
 STA STORER+1
 LDA SNSEQTAB,X 
 STA STORER3+1
LOADER LDA OPSEQTAB,Y 
STORER STA MN0Y,Y 
 DEY
 BPL LOADER
 LDX #3 
 LDY OPINDX
LOADER1 LDA OPSEQTAB,X
 STA INDINIT,Y 
 INX
LOADER2 LDA OPSEQTAB,X
 STA OPWIDTH,Y 
 INX
 LDY #0
LOADER3 LDA OPSEQTAB,X
STORER3 STA MSEQ0,Y 
 INX
 INY
 CPX #$D
 BNE LOADER3
 RTS
*
*
FILLIN LDY OPINDX
*
FIXLEV JSR RNDM
 LSR A
 BCS L1
 LSR A
 BCS L2
L0 LDA #0
 BEQ STLEV
L1 LDA #1
 BNE STLEV
L2 LDA #2
STLEV STA LEVOP,Y
*
FIXREINF LDA DIFF
 LSR A
 STA MNSTREINF,Y
*
 LDA INDINIT,Y     
 LSR A
 STA INDN,Y
*
FIXX CPY #$F
 BEQ FIXRES
 CPY #7
 BCC RNDMZ
 CPY #$B
 BCC FIXRES
RNDMZ JSR RNDM
 CMP #30
 BCS USEIT
 CMP #10
 BCC USEIT
 CLC
 ADC #40
USEIT STA XOLD,Y
 STA XNEW,Y
FIXRES CPY #4
 BCS FIXOPFLG
 JSR RNDM
 AND #3
 STA MNSTRES,Y
*
FIXOPFLG JSR RNDM
 AND #$F
 CMP #11
 BNE FT
 LDA #$11
 BNE STF
FT AND #7 
 TAX   
 LDA EXMASK,X 
STF STA OPFLG0,Y 
*
FIXMODE LDA #0
 STA FLAG
 LDA OPNUM
 CMP #$D
 BCC GRN
 LDA FLOOR
 CMP #3
 BNE CMNX
MP LDA #2   
 STA LEVOP,Y
 LDA #$88
 BNE STMD 
CMNX CMP #7
 BEQ MP
 BNE GRN
ZED LDA #0 
 BEQ STMD
GRN JSR RNDM
 AND #$F
 STA XTEMP
 LDX DIFF
 LDA DIFTAB,X
 CMP XTEMP
 BCS ZED
 JSR RNDM
 AND #7
 TAX
 LDA OPNUM
 ASL A
 ASL A
 ASL A
 CLC
 ADC #$80
 STA LODM+1
LODM LDA MODETAB,X
STMD STA OPMODE0,Y
*
FIXFLGS LDA #0
 STA HHFLG
 STA ALREADYFLG
 STA ALREADYFLG+1
 STA CAPTUREFLG
 LDA #20
 SEC
 SBC DIFF
 STA SAFLG
 LDX FLOOR
 LDA DELF,X
 STA DELFIX
 LDA NS1,X
 STA BANN
 LDA NS2,X
 STA MANN
 LDA NS3,X
 STA SANN
 RTS
*
*
SPECFLR LDA FLOOR
 CMP #4
 BNE NEXTCOMP 
SETHHF LDA #$80 
 STA HHFLG
SETDART LDA #$FF 
 STA OPFLG0+12
 STA OPFLG0+13
 RTS
NEXTCOMP CMP #6
 BNE NEXTCOMP1
 JSR SETDART
NEXTCOMP1 CMP #7 
 BNE OTHCOMP
 JSR SETHHF 
 LDA FLOOR
OTHCOMP CMP #5 
 BEQ LIZFIX
 CMP #2
 BNE SPECFOUT
 LDY #3
 JSR LIZF1
 JMP LIZFIX
SPECFOUT RTS
*
LIZFIX LDY #4
LIZF1 LDA OPMODE0,Y 
 BPL LIZROUT
 LDA #$CA 
 STA OPMODE0,Y
LIZROUT RTS 
* 
*
*
*
**************************
*
* RANDOM NUMBER GENERATOR
*    MICRO AUGUST 1982
*
**************************
*
* SEED ONE TIME WITH VALUES
* IN LOCATIONS $10 THROUGH $13
*
******************************
*
*
*
RNDM STX XTEMP
 CLC
 LDX #3
 LDA ARRAY,X
 DEX
LOOP1 ADC ARRAY,X
 STA ARRAY,X
 DEX
 BPL LOOP1
 LDX #3
LOOP2 INC ARRAY,X
 BNE RANDOUT
 DEX
 BPL LOOP2
RANDOUT LDX XTEMP
 LDA ARRAY
 RTS
*
*
DELF DFB 19,19,18,18,17,16,15,14 ;FIX BY EXPERIMENT
*
NS1 DFB 100,105,107,90,87,100,103,85  
NS2 DFB 81,85,87,77,73,83,91,81
NS3 DFB 67,65,67,67,63,65,67,63 
*
*
*
FLSAVE LDA $E90
 ORA #$2
 STA $E90 ;BUG FIX ???
 LDA FLOOR
 ASL A
 STA SN
 LDA #$10
 STA TN
 LDA #0
 STA BUFLO
 LDA #$E
 STA BUFHI
 JSR WRITE
 INC SN
 INC BUFHI
 JSR WRITE
 RTS
*
*
*
*
